define([
	'jquery',
	'GlobalInfo',
	'bootstrap',
  	'navBar-general',
  	'jquery.base64.min',
  	'fineuploader'
],
function($, GlobalInfo){
	$(function(){
        GlobalInfo.CheckSession();
        $('#startUpload').on('click', function(){
            $('#userfile').click();
        });

        $('#userfile').on('change', function(e) {
		 
		
           var files = e.target.files;
           var file;

           if (!files || files.length == 0) return;
           file = files[0];

           var fileReader = new FileReader();
           fileReader.onload = function (e) {
				        GlobalInfo.BlockUI("Cargando...");
                var extension = file.name.substring(file.name.lastIndexOf('.') + 1, file.name.length);

                if(typeof extension == "undefined" || extension == null || (extension != "xls" && extension != "xlsx")){
                    alert("Solo puede cargar archivos válidos de Excel");
                    GlobalInfo.UnblockUI();
                    return;
                }

                var params = {
                   sessionUUID: GlobalInfo.sessionUUID,
                   base64EncodedFile: e.target.result.split(",")[1],
                   fileName: file.name
                };

                GlobalInfo.CallWebService(
                    'UploadServices',
                    'UploadExcelFile',
                    params,
                    UploadExcelFileSuccessCallback,
                    UploadExcelFileErrorCallback
                );
            };

            fileReader.readAsDataURL(file);
			
        });

        function UploadExcelFileSuccessCallback(resultObj){
            if(resultObj.error() != null){
                GlobalInfo.ShowMessage(resultObj.error(), true, 5000);
				document.getElementById("mensajes").innerHTML ="Error al cargar el archivo";
				document.getElementById("mensajes").style.visibility ="visible";
            }
            else{
                document.getElementById("mensajes").innerHTML ="Archivo cargado con &eacute;xito";
				document.getElementById("mensajes").className = "alert alert-success";
				document.getElementById("mensajes").style.visibility ="visible";
            }
			GlobalInfo.UnblockUI();
        }

        function UploadExcelFileErrorCallback(error){
            GlobalInfo.ShowMessage('Ocurrió un error inesperado. Por favor intente más tarde.', true, 5000);
			GlobalInfo.UnblockUI();
        }
	});
});